package com.weifangfirecontrolformal.weifangfirecontrolformal.web.web.internetofthings.firefightingvisualization;

import cn.hutool.json.JSONObject;
import com.weifangfirecontrolformal.weifangfirecontrolformal.common.base.BaseController;
import com.weifangfirecontrolformal.weifangfirecontrolformal.support.annotaion.Action;
import com.weifangfirecontrolformal.weifangfirecontrolformal.support.annotaion.At;
import com.weifangfirecontrolformal.weifangfirecontrolformal.support.model.RespEntity;
import com.weifangfirecontrolformal.weifangfirecontrolformal.web.service.internetofthings.firefightingvisualization.VisDeviceService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.annotation.Resource;

/**
 * 设备控制器
 */
@Action
@RequestMapping(value="firefightingvisualization/device")
public class VisDeviceController extends BaseController {
    @Resource
    public VisDeviceService visDeviceService;

    /**
     * 设备添加
     * @param
     * name	设备名称
     * number	设备编号
     * internetofthingsCardnum	物联网卡号
     * transDeviceCode	传输装置编码
     * deviceType	设备类型id
     * installtime	安装日期
     * position	安装位置
     * lon	经度
     * lat	纬度
     * img	设备图片
     * productId	产品id
     * spec	规格
     * alarmPhone	报警电话
     * installperson	安装人员
     * installpersonPhone	安装人员电话
     * deviceClassify	设备分类:1 电气火灾 2 消防用水 3 烟感 4 可燃气体 5 火灾自动联网 6 消防可视化
     * businessId	单位id
     * businessName	单位名称
     * rfid	RFID码
     * remark	备注
     * @return
     */
    @At(value = "add", method = RequestMethod.POST, param = { "deviceClassify","businessId","businessName" })
    public RespEntity add(@RequestBody(required = false) JSONObject jsonParam) {
        return visDeviceService.add(jsonParam);
    }

    /**
     * 设备删除
     * @param
     * id	设备的id
     * @return
     */
    @At(value = "delete", method = RequestMethod.POST, param = { "id"})
    public RespEntity delete(@RequestBody(required = false) JSONObject jsonParam) {
        return visDeviceService.delete(jsonParam);
    }

    /**
     * 设备修改
     * @param
     * name	设备名称
     * number	设备编号
     * internetofthingsCardnum	物联网卡号
     * transDeviceCode	传输装置编码
     * deviceType	设备类型id
     * installtime	安装日期
     * position	安装位置
     * lon	经度
     * lat	纬度
     * img	设备图片
     * productId	产品id
     * spec	规格
     * alarmPhone	报警电话
     * installperson	安装人员
     * installpersonPhone	安装人员电话
     * deviceClassify	设备分类:1 电气火灾 2 消防用水 3 烟感 4 可燃气体 5 火灾自动联网 6 消防可视化
     * businessId	单位id
     * businessName	单位名称
     * id	设备id
     * rfid	RFID码
     * remark	备注
     * @return
     */
    @At(value = "update", method = RequestMethod.POST, param = { "deviceClassify","businessId","businessName","id" })
    public RespEntity update(@RequestBody(required = false) JSONObject jsonParam) {
        return visDeviceService.update(jsonParam);
    }

    /**
     * 设备列表
     * @param
     * page	第几页
     * limit	每页多少条
     * alarmType	报警类型:对应字典表报警类型
     * businessName	单位名称(模糊查询)
     * position	位置（模糊查询）
     * currentstate	设备当前状态：1 正常 2 报警 3 离线 4 故障
     * number	设备编号(模糊查询)
     * rfid	RFID码	否
     * @return
     */
    @At(value = "deviceListPage", method = RequestMethod.GET, param = { "page","limit" })
    public RespEntity deviceListPage(@RequestBody(required = false) JSONObject jsonParam) {
        return visDeviceService.deviceListPage(jsonParam);
    }

    /**
     * 设备详情
     * @param  id	设备id
     * rfid	RFID码	否
     * @return
     */
    @At(value = "detail", method = RequestMethod.GET)
    public RespEntity detail(@RequestBody(required = false) JSONObject jsonParam) {
        return visDeviceService.detail(jsonParam);
    }
   
}